package xing.repository.isv.suite;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import xing.domain.isv.suite.SuiteToken;

import java.util.Date;

/*******************************************************************************************
 * 类描述：  
 *
 * @author: dustin
 * @date： 2017-8-22 14:25
 * @Description: 一句话描述该类的功能
 * @version 1.0.0
 *
 *
 * Version    Date       ModifiedBy                 Content  
 * -------- ---------    ----------         ------------------------  
 * 1.0.0     2017-8-22    Administrator                            
 *******************************************************************************************
 */
public interface SuiteTokenRepository extends JpaRepository<SuiteToken,Long> {

    @Query(value = "select st.suiteToken from SuiteToken st where st.suiteKey=?1")
    String findSuiteTokenBySuiteKey(String suiteKey);

    /**
     * 描    述：新增或更新suiteToken
     * 创 建 人：陈天龙
     * 日    期：2017/8/23
     * @param suiteKey
     * @param suiteToken
     * @param expiredTime
     * @return int
     */
    @Modifying
    @Query(value = "insert into isv_suite_token (id,gmt_create,gmt_modified,suite_key,suite_token,expired_time)" +
            "values(:id,now(),now(),:suiteKey,:suiteToken,:expiredTime)" +
            "ON DUPLICATE KEY UPDATE gmt_modified=now(),suite_token=:suiteToken,expired_time=:expiredTime"
            ,nativeQuery = true)
    int saveOrUpdateSuiteToken(@Param("id")Long id,@Param("suiteKey")String suiteKey,@Param("suiteToken")String suiteToken
            ,@Param("expiredTime")Date expiredTime);
}
